package com.xiaolin.algorithm.search.order;

/**
 * @ClassName OrderSearch
 * @Description 顺序查找
 * @Detail  顺序查找又称线性查找：
                基本思想：从查找表的一端开始，向另一端逐个按给定值K与关键字进行比较，若找到，查找成功;
                并给出记录在表中的位置；若整个表检测完，仍未找到与K值相同的关键字，则查找失败;
                优点：对表中数据的存储没有要求，对于链表，只能进行顺序查找；
                缺点：当n值很大时，平均查找长度较大，效率低；
 * @Author MyPC
 * @Date 2020/8/19
 * @Version 1.0
 */
public class OrderSearch {

    /**
     * 返回第一个匹配的元素的索引
     * @param arr
     * @param ele
     * @return
     */
    public int searchFirst(int[] arr,int ele){
        int index=-1;
        for(int i=0;i<arr.length;i++){
            if(arr[i]==ele){
                //找到了元素
                index=i;
                return index;
            }
        }
        return index;
    }

    /**
     * 检索最后一个匹配的元素的索引
     * @param arr
     * @param ele
     * @return
     */
    public int searchLast(int[] arr,int ele){
        int index=-1;
        for(int i=0;i<arr.length;i++){
            if(arr[i]==ele){
                //找到了元素
                index=i;
            }
        }
        return index;
    }
}
